✅リンク中に|(パイプ)が含まれるとテーブルとして解釈されてしまう問題
https://gyazo.com/8d9be7696fee8b725bdad94e61b7e066
これもjekyllの既知
replace | to - などの対処をするしかない
これどう置換すればいいんだ?
[この中で使われてるパイプだけを置換したい]()わけだが
たぶん scb link to md link する前に、(\[)(.+?)(\|)(.+?)(\]) to \\1\\2-\\4\\5 などとする処理が必要では?
いや、別に to md link の後でもいけるか
上記表現で[この中で使われてるパイプだけを置換したい]()はできるはず
パイプ一つはokだが、nつがまだ
https://gyazo.com/d4d8fbc38a06a8a09c4e1121e762e8b1
pipe in link text のバリエーション
[1|2]
今実装したのはこれ
[1|2|3]
[1|2|3|4]
[1|2|3|4|5]
これが一般系かな
code:pipe
^^^^^ | => - ★まだここしか実装できてない ^^^^^ [ | | => [ - |
^^^^^ | | ] => | - ]
こっちのパターンはだめそう
- は普通に使われる文字なので「パイプから変換した-」なのか「普通に使ってる-」なのか
区別がつかない
^^^^^ [ | | => 変換しない
^^^^^ | | ] => 変換しない
いや、これもだめか
^^^^^ キャプチャ時に や に頼れないから「リンクテキストの中にいる」ことを保証できない これ保証できないと、リテラル中の分も変換しちゃう可能性(文脈を無視する)
難しいな……
再帰的に、ってのは?
code:pipe
^^^
^^^^^^^
^^^^^^^^^
可能ではあるが、正規表現だけでは再帰はできない
https://gyazo.com/894904eea76937ba0fe0dc5a091628b1
1040Lの処理をn回行う必要がある
個数数える?
文脈考慮して数えるとなるとコスト高い
nをハードコードする
パイプ多用してるのamazonくらいだろうし、amazonのn=4でいいのでは?
n=5としてみた
とりあえず通った
汚いが、いったんこれで
コメントで注記もしておく